﻿
using System.Data;

namespace SvGame.Objects;


public interface IRole
{
    //唯一ID
    public long Uid { get; }
    //姓名
    public string Name { get; }
    //性别
    public EGender Gender { get; }

    public EClasss Classs { get; } // 阶级
    public ERace Race { get; } // 种族
    public int Age { get; }
    public long Exp { get; set; }
    public string Family { get; }
    public string Guild { get; }

    public Room Room { get; set; }

    // 战斗信息
    public CombatData Comb { get; }

    public bool IsBusy { get; }
    public void BusyStart(int ms, bool busynew = true);
    public bool IsCd(string perform);
    public void CdStart(string perform, int sec);

    // 存活的
    public virtual bool Living => Comb.LiveState == ELiveState.Living;

    [Desc("状态当前值")]
    public Status StatusCur { get; set; }
    [Desc("状态有效值")]
    public Status StatusEff { get; set; }
    [Desc("状态最大值")]
    public Status StatusMax { get; set; }

    [Desc("天赋")]
    public Talent Talent { get; set; }

    [Desc("技能列表")]
    public Dictionary<string, int> Skills { get; set; }
    [Desc("激发列表")]
    public Dictionary<string, string> Usages { get; set; }

    [Desc("装备")]
    public Dictionary<long, Equip> DictEquip { get; set; }

    [Desc("穿戴")]
    public Dictionary<EEquipType, long> DictWear { get; set; } 

    // 调试用名字
    public string DebugName { get; }

}